#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <queue>
#include <cmath>
#include <algorithm>

#define FOR(i,a,n) for(int i=a,_n(n);i<_n;++i)
#define REP(i,n) FOR(i,0,n)

using namespace std;

const double eps = 1e-9;
double a,b,l;
double f(double x)
{
    double tx = sqrt(l*l-x*x);
    return fabs(x*tx-x*a-b*tx)/l;
}
inline bool equal(double x,double y)
{
    return fabs(x-y)<eps;
}
double GetAns()
{
    if(a>b) swap(a,b);
    if(l<=a) return l;
    else if(l<=b) return a;
    double low = 0,high = l;
    while(!equal(low,high))
    {
        double m1 = (high+2*low)/3;
        double m2 = (2*high+low)/3;
        if(f(m1)>f(m2)) low = m1;
        else high = m2;
    }
    return  f(low);
}
int main()
{
    while(cin>>a>>b>>l)
    {
        double ans = GetAns();
        if(equal(ans,0)) puts("My poor head =(");
        else printf("%.15f\n",ans);
    }
	return 0;
}
